<?php
/**
 * Created by PhpStorm.
 * User: liyu
 * Date: 2018/4/19
 * Time: 下午6:00
 */

namespace app\api\controller\v1;


use app\worker\controller\Work;

class Worker
{
    public function run()
    {
        $data =[
            "name"=>"Work"
        ];
//        $Result =  Work::add( $data);
//        return $Result;

        $pid = pcntl_fork();

//父进程和子进程都会执行下面代码
        if ($pid == -1) {
            //错误处理：创建子进程失败时返回-1.
            die('could not fork');
        } else if ($pid) {
            //父进程会得到子进程号，所以这里是父进程执行的逻辑
            pcntl_wait($status); //等待子进程中断，防止子进程成为僵尸进程。
        } else {
            //子进程得到的$pid为0, 所以这里是子进程执行的逻辑。
            echo '进入子进程';
        }



    }

    protected function pcntlKill()
    {
        // 为避免僵尸进程，当子进程结束后，手动杀死进程
        if (function_exists("posix_kill")) {
            posix_kill(getmypid(), SIGTERM);
        }
        system('kill -9 ' . getmypid());
        exit ();
    }

}